package com.swn.common.util;

import java.security.MessageDigest;

public class ShaUtil {
	/**
	 * 使用加密规则对字符串进行加密，如果成功，返回加密后的字符串，否则返回原字符串
	 * 
	 * @param password
	 * 
	 * @return
	 */
	public static String encodePassword(String password) {
		return encodePassword(password, "SHA");
	}

	/**
	 * 使用加密规则对字符串进行加密，如果成功，返回加密后的字符串，否则返回原字符串
	 * 
	 * @param password
	 * @param algorithm
	 * 
	 * @return
	 */
	public static String encodePassword(String password, String t) {
		byte[] unencodedPassword = password.getBytes();

		MessageDigest md = null;

		try {
			md = MessageDigest.getInstance(t.toString());
		} catch (Exception e) {
			e.printStackTrace();
			return password;
		}

		md.reset();
		md.update(unencodedPassword);

		byte[] encodedPassword = md.digest();

		StringBuffer buf = new StringBuffer();

		for (int i = 0; i < encodedPassword.length; i++) {
			if ((encodedPassword[i] & 0xff) < 0x10) {
				buf.append("0");
			}

			buf.append(Long.toString(encodedPassword[i] & 0xff, 16));
		}

		return buf.toString();
	}
	
	public static void main(String[] args) {
		String code = encodePassword("123456a?");
		System.out.println(code);
	}
}
